/*
 * Copyright (C) 2011 TopCoder Inc., All Rights Reserved.
 */
package gov.nasa.pds.services;

import gov.nasa.pds.entities.Product;
import gov.nasa.pds.entities.Table;

/**
 * Reads data from a file in a Table structure.
 * 
 * 
 * Thread Safety: The implementations should be effectively thread-safe.
 */
public interface DataFileReader {
    /**
     * Opens the file and puts it in the table structure.
     * 
     * @param product
     *            - the product that owns the table
     * @param filename
     *            - the file to open and read
     * @param table
     *            - the Table structure into which to write the data
     * @param offset
     *            - the offset value
     * @param offsetType
     *            - the offsetType value
     * @throws DataSetProcessingException
     *             - if there is an error while doing the copy.
     */
    void readData(Product product, String filename, Table table, Integer offset, OffsetType offsetType)
            throws DataSetProcessingException;
}
